<?php

namespace backend\controllers;


use backend\models\ArticleCategory;
use backend\models\EveryIsOk;
use kucha\ueditor\UEditorAction;
use yii\web\Controller;

class ArticleCategoryController extends Controller
{
    /**
     * 添加行为控制过滤
     * @return array
     */
    public function behaviors()
    {
        return [
            'access'=>[
                'class'=>'backend\filter\AccessFilter',
            ],
        ];
    }

    public function actions()
    {
        return [
            'upload' => [
//                'class' => 'kucha\ueditor\UEditorAction',
                'class' => UEditorAction::className(),
            ],
        ];
    }

    /**
     * @return string
     */
    public function actionIndex()
    {
        return $this->render('index');
    }
    /*
     * 实现文章分类表的列表显示
     */
    public function actionList(){
        //实例化表单模型
        $query = ArticleCategory::find()->where(['!=','status',-1]);
        //调用方法得到分页的对象
        $pager = EveryIsOk::getPager($query);
        //获取当前页码的数据
        $models = $query->limit($pager->limit)->offset($pager->offset)->all();
        //显示视图
        return $this->render('list',['models'=>$models,'pager'=>$pager]);
    }

    /*
     * 实现分类的添加
     */
    public function actionAdd()
    {
        //实例化表单模型
        $model = new ArticleCategory();
        //实例化请求
        $request = \Yii::$app->request;
        //判断请求方式 并且加载数据
        if($request->isPost && $model->load($request->post()) && $model->validate()){
            //验证数据  如果验证成功保存数据
            $rs = $model->save();
            //保存成功后 提示用户并且跳转到分类列表页面
            EveryIsOk::setTisiInfo($rs,'添加');
            //跳转
            return $this->redirect(['article-category/list']);
        }

        //显示添加分类的视图
        return $this->render('add',['model'=>$model]);
    }

    /*
     * 实现分类的编辑
     */
    public function actionEdit($id){
        //实例化表单模型
        $model =ArticleCategory::findOne(['id'=>$id]);
        //实例化请求
        $request = \Yii::$app->request;
        //判断请求方式 并且加载数据
        if($request->isPost && $model->load($request->post()) && $model->validate()){
            //验证数据  如果验证成功保存数据
            $rs = $model->save();
            //保存成功后 提示用户并且跳转到分类列表页面
            EveryIsOk::setTisiInfo($rs,'添加');
            //跳转
            return $this->redirect(['article-category/list']);

        }

        //显示添加分类的视图
        return $this->render('add',['model'=>$model]);
    }


    /*
     * 实现分类的删除
     */
    public function actionDel($id){
        //把对应的数据中的状态值更新为-1
        $rs = \Yii::$app->db->createCommand()->update('article_category',['status'=>-1],['id'=>$id])->execute();
        //执行成功后提示用户并且,跳转到列表页
        \backend\models\EveryIsOk::setTisiInfo($rs,'删除');
        return $this->redirect(['article-category/list']);
    }


    /*
     * 显示分类的回收站
     */
    public function actionRecycleBin(){
        //获取所有的删除的数据
        $query = ArticleCategory::find()->where(['=','status',-1]);
        //调用方法得到分页的对象
        $pager = EveryIsOk::getPager($query);
        //获取当前页码的数据
        $model = $query->limit($pager->limit)->offset($pager->offset)->all();
        //显示视图
        return $this->render('recycleBin',['models'=>$model,'pager'=>$pager]);
    }
    /*
    * 实现分类的彻底删除
    */
    public function actionDelete($id){
        //删除数据
        $rs = \Yii::$app->db->createCommand()->delete('article_category',['id'=>$id])->execute();
        //调用方法设置提示信息
        \backend\models\EveryIsOk::setTisiInfo($rs,'彻底删除');
        return $this->redirect(['article-category/recycle-bin']);

    }

    /*
     * 恢复删除的分类
     */
    public function actionRecovery($id)
    {
        //把对应的数据中的状态值更新为1
        $rs = \Yii::$app->db->createCommand()->update('article_category',['status'=>1],['id'=>$id])->execute();
        //执行成功后提示用户并且
        \backend\models\EveryIsOk::setTisiInfo($rs,'恢复');
        //跳转到列表页
        return $this->redirect(['article-category/list']);
    }


}
